LinuxQMISDK-Lite  SLQS04.00.27
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
QmuxInternal.h
Go to the documentation of this file.
1 #ifndef __QMUX_INTERNAL_H__
2 #define __QMUX_INTERNAL_H__
3 
4 #include <stdint.h>
5 #include "common.h"
6 
7 #ifndef MAX
8 #define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )
9 #endif
10 
11 
12 #ifndef SUCCESS
13 #define SUCCESS 0
14 #endif
15 
16 #ifndef FAILURE
17 #define FAILURE (-1)
18 #endif
19 
20 #define MAX_QMUX_PACKET_SIZE 2048
21 
22 #define QMUX_MSG_FLAG 0x01
23 #define IF_TYPE_SIZE 1
24 
25 #define QMUX_CTL_FLAG_CTL_POINT 0x00
26 #define QMUX_CTL_FLAG_SERVICE 0x80
27 
28 #define eInvalidService 255
29 
30 #define eCTL_REQ 0
31 #define eCTL_RSP 1
32 #define eCTL_IND 2
33 
34 #define BROADCAST_CLIENT_ID 255
35 
36 #define GET_CLIENT_ID 0x0022
37 #define RELEASE_CLIENT_ID 0x0023
38 #define TLV_TYPE_REQUIRED_PARAMETER 0x01
39 #define TLV_TYPE_RESULT_CODE 0x02
40 
41 #define QMI_RESULT_SUCCESS 0
42 #define QMI_RESULT_FAILURE 1
43 
44 #define QMI_ERR_GENERAL 46
45 
46 #pragma pack(push, 1)
47 
48 typedef struct
49 {
50  uint8_t IfType;
51  uint16_t Length;
52  uint8_t CtlFlags;
53  uint8_t QMIType;
54  uint8_t ClientId;
55 } QMUX_HDR;
56 
57 typedef struct QmiTransactionHdr
58 {
59  uint8_t flags;
60  uint16_t transactionId;
62 
63 typedef struct QmiHdr
64 {
65  uint16_t messageId;
66  uint16_t length;
67 } QmiHdr;
68 
69 typedef struct ResultTlv
70 {
71  uint8_t tlvType; // TLV_TYPE_RESULT_CODE
72  uint16_t tlvLength; // 4
73  uint16_t result; // QMI_RESULT_SUCCESS or QMI_RESULT_FAILURE
74  uint16_t error;
75 } ResultTlv;
76 
77 typedef struct CtlTransactionHdr
78 {
79  uint8_t flags;
80  uint8_t transactionId;
82 
83 typedef struct GetClientIdReqMsg
84 {
85  uint16_t messageId;
86  uint16_t length;
87  uint8_t tlvType;
88  uint16_t tlvLength;
89  uint8_t serviceType;
91 
92 typedef struct GetClientIdRspMsg
93 {
94  uint16_t messageId;
95  uint16_t length;
96  uint8_t tlvType;
97  uint16_t tlvLength;
98  uint16_t result;
99  uint16_t error;
100  uint8_t tlv2Type;
101  uint16_t tlv2Length;
102  uint8_t serviceType;
103  uint8_t clientId;
105 
106 typedef struct ReleaseClientIdReqMsg
107 {
108  uint16_t messageId;
109  uint16_t length;
110  uint8_t tlvType;
111  uint16_t tlvLength;
112  uint8_t serviceType;
113  uint8_t clientId;
115 
116 typedef struct ReleaseClientIdRspMsg
117 {
118  uint16_t messageId;
119  uint16_t length;
120  uint8_t tlvType;
121  uint16_t tlvLength;
122  uint16_t result;
123  uint16_t error;
124  uint8_t tlv2Type;
125  uint16_t tlv2Length;
126  uint8_t serviceType;
127  uint8_t clientId;
129 
130 #pragma pack(pop)
131 
132 
133 
134 #endif //__QMUX_INTERNAL_H__
uint8_t ClientId
Definition: QmuxInternal.h:54
uint8_t flags
Definition: QmuxInternal.h:79
uint16_t length
Definition: QmuxInternal.h:86
Definition: QmuxInternal.h:57
Definition: QmuxInternal.h:77
struct ResultTlv ResultTlv
uint8_t transactionId
Definition: QmuxInternal.h:80
uint8_t serviceType
Definition: QmuxInternal.h:126
uint8_t tlvType
Definition: QmuxInternal.h:110
struct ReleaseClientIdReqMsg ReleaseClientIdReqMsg
uint8_t QMIType
Definition: QmuxInternal.h:53
uint16_t tlvLength
Definition: QmuxInternal.h:121
struct QmiHdr QmiHdr
Definition: QmuxInternal.h:48
Definition: QmuxInternal.h:69
Definition: QmuxInternal.h:106
uint8_t tlvType
Definition: QmuxInternal.h:96
uint16_t result
Definition: QmuxInternal.h:122
uint8_t tlvType
Definition: QmuxInternal.h:120
struct CtlTransactionHdr CtlTransactionHdr
uint16_t error
Definition: QmuxInternal.h:99
uint8_t serviceType
Definition: QmuxInternal.h:112
uint16_t tlvLength
Definition: QmuxInternal.h:111
uint16_t Length
Definition: QmuxInternal.h:51
uint8_t IfType
Definition: QmuxInternal.h:50
uint16_t result
Definition: QmuxInternal.h:98
struct QmiTransactionHdr QmiTransactionHdr
uint8_t tlv2Type
Definition: QmuxInternal.h:124
uint8_t serviceType
Definition: QmuxInternal.h:102
uint16_t length
Definition: QmuxInternal.h:95
uint8_t serviceType
Definition: QmuxInternal.h:89
struct ReleaseClientIdRspMsg ReleaseClientIdRspMsg
uint16_t error
Definition: QmuxInternal.h:74
Definition: QmuxInternal.h:116
uint8_t clientId
Definition: QmuxInternal.h:113
uint16_t messageId
Definition: QmuxInternal.h:85
uint16_t messageId
Definition: QmuxInternal.h:65
uint16_t transactionId
Definition: QmuxInternal.h:60
uint16_t messageId
Definition: QmuxInternal.h:108
uint8_t tlvType
Definition: QmuxInternal.h:71
uint16_t result
Definition: QmuxInternal.h:73
Definition: QmuxInternal.h:83
Definition: QmuxInternal.h:63
uint16_t tlvLength
Definition: QmuxInternal.h:97
uint16_t error
Definition: QmuxInternal.h:123
uint16_t tlvLength
Definition: QmuxInternal.h:72
uint16_t messageId
Definition: QmuxInternal.h:94
uint8_t clientId
Definition: QmuxInternal.h:103
uint16_t length
Definition: QmuxInternal.h:109
uint8_t clientId
Definition: QmuxInternal.h:127
uint8_t tlvType
Definition: QmuxInternal.h:87
uint16_t tlvLength
Definition: QmuxInternal.h:88
uint8_t flags
Definition: QmuxInternal.h:59
uint16_t tlv2Length
Definition: QmuxInternal.h:101
uint8_t tlv2Type
Definition: QmuxInternal.h:100
uint16_t messageId
Definition: QmuxInternal.h:118
uint16_t tlv2Length
Definition: QmuxInternal.h:125
uint16_t length
Definition: QmuxInternal.h:119
uint8_t CtlFlags
Definition: QmuxInternal.h:52
uint16_t length
Definition: QmuxInternal.h:66
Definition: QmuxInternal.h:92
struct GetClientIdRspMsg GetClientIdRspMsg
struct GetClientIdReqMsg GetClientIdReqMsg

Copyright (c) 2011-2015 Sierra Wireless, Inc. All rights reserved